#pragma once

#include <vector>
#include "Globals.h"
#include "FrameInfo.h"
#include "Point.h"
#include "Size.h"
#include "rapidxml.hpp"

using namespace rapidxml;

namespace game_engine { namespace data_format
{

/*!
 * \class SequenceInfo
 * \brief 
 */
class SequenceInfo
{
///////////////////////////////////////////////////////////////////////////////
// Attribute definition
///////////////////////////////////////////////////////////////////////////////
private:
    string name;
    vector<FrameInfo> frames;

///////////////////////////////////////////////////////////////////////////////
// Method definition
///////////////////////////////////////////////////////////////////////////////
public:
    // Constructors and Destructors
    SequenceInfo(void);
    virtual ~SequenceInfo(void);

    // Others
    void parse(xml_node<> *node);

    // Getters
    const string& getName(void) const;
    const vector<FrameInfo>& getFrames(void) const;

    // Setters
    void setName(const string &n);
    void setFrames(const vector<FrameInfo> &f);

private:
    void getSequenceName(xml_node<> *node);
    void buildFramesList(xml_node<> *node);

};

}}
